--- title: "49. 字母异位词分组" created: 2026-05-19 --- # 49. 字母异位词分组 ## 题目 [**字母异位词分组**](https://leetcode.cn/problems/group-anagrams/) 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 **示例 1:** **输入:** strs = ["eat", "tea", "tan", "ate", "nat", "bat"] **输出:** [["bat"],["nat","tan"],["ate","eat","tea"]] **解释:** - 在 strs 中没有字符串可以通过重新排列来形成 `"bat"`。 - 字符串 `"nat"` 和 `"tan"` 是字母异位词,因为它们可以重新排列以形成彼此。 - 字符串 `"ate"` ,`"eat"` 和 `"tea"` 是字母异位词,因为它们可以重新排列以形成彼此。 **示例 2:** **输入:** strs = [""] **输出:** [[""]] **示例 3:** **输入:** strs = ["a"] **输出:** [["a"]] **提示:** - `1 <= strs.length <= 104` - `0 <= strs[i].length <= 100` - `strs[i]` 仅包含小写字母 ## 思路分析 ## 代码实现 ```java import java.util.*; class Solution { public List> groupAnagrams(String[] strs) { Map> m = new HashMap<>(); for (String s : strs) { char[] charArray = s.toCharArray(); Arrays.sort(charArray); String key = new String(charArray); if (!m.containsKey(key)) { m.put(key, new ArrayList<>()); } m.get(key).add(s); } return new ArrayList<>(m.values()); } } ``` ## 同类题型 ## 视频讲解